﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using NIEN_LUAN.Db;
using System.Threading;
using System.Windows.Forms;

namespace NIEN_LUAN
{
    public partial class FormQuanLyNguoiDung : Form
    {
        private DataContentDataContext db=new DataContentDataContext();
        public NHANVIEN NguoiDungAdd = new NHANVIEN();  

        public FormQuanLyNguoiDung()
        {
            InitializeComponent();
        }                
       
        private void FormQuanLyNguoiDung_Load(object sender, EventArgs e)
        {
            this.dataGridViewNguoiDung.AutoGenerateColumns=false;

            var nguoidung = (from nd in db.NHANVIENs
                                 orderby nd.TenNhanVien
                                 select nd
                                 ).ToList();
            this.nHANVIENBindingSource.DataSource=nguoidung;
            this.dataGridViewNguoiDung.DataSource = this.nHANVIENBindingSource;
        }

        private void toolStripButtonThem_Click(object sender, EventArgs e)
        {
            FormChiTietNhanVien frm = new FormChiTietNhanVien(this);
            DialogResult ketqua = frm.ShowDialog();
            if (ketqua == DialogResult.OK)
            {
                nHANVIENBindingSource.Add(NguoiDungAdd);
                MessageBox.Show("Thêm thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            } 
        }

        private void toolStripButtonThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void toolStripButtonXoa_Click(object sender, EventArgs e)
        {
            var nguoidung = this.nHANVIENBindingSource.Current as NHANVIEN;
            if (nguoidung != null)
            {
                var chitietchungtu = (from m in db.CHUNGTUs
                                      where m.MaNhanVien == nguoidung.MaNhanVien
                                      select m).Count();
                if (chitietchungtu > 0)
                {
                    MessageBox.Show("Nhân viên này có lập chứng từ không thể xóa!");
                    return;
                }
                var tl = MessageBox.Show("Bạn có chắc chắn xóa?","Thông báo",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
                if (tl == DialogResult.Yes)
                {
                    try
                    {
                        db.NHANVIENs.DeleteOnSubmit(nguoidung);
                        db.SubmitChanges();
                        this.nHANVIENBindingSource.RemoveCurrent();
                        return;
                    }
                    catch(Exception ex) {
                        MessageBox.Show("Đã có lỗi khi thực hiện thao tác này : Chi tiết lỗi : "+ex.Message);
                    }
                }



            }
            else
            {
                MessageBox.Show("Vui lòng chọn người dùng!");
            }
            //DialogResult traloi;
            //traloi = MessageBox.Show("Bạn có chắc không ?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            //if (traloi == DialogResult.Yes)
            //{
            //    //kiem tra dieu kien xoa                
            //    nHANVIENBindingSource.RemoveCurrent();
            //    db.NHANVIENs.DeleteOnSubmit(nguoidung);
            //    db.SubmitChanges();
            //    this.dataGridViewNguoiDung.DataSource = this.nHANVIENBindingSource;
            //    MessageBox.Show("Bạn đã xóa thành công !!!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            //}
        }

        public NHANVIEN NguoiDungSua = new NHANVIEN();        
        private void toolStripButtonSua_Click(object sender, EventArgs e)
        {
            var nguoidung = this.nHANVIENBindingSource.Current as NHANVIEN;
            if (nguoidung != null)
            {
                NguoiDungSua = nguoidung;
                var kq = new FormChiTietNguoiDung(NguoiDungSua, this).ShowDialog();
                if (kq == DialogResult.OK)
                {
                    nguoidung.TenTruyCap = NguoiDungSua.TenTruyCap;
                    nguoidung.MatKhau = NguoiDungSua.MatKhau;

                    this.nHANVIENBindingSource.ResetCurrentItem();
                    MessageBox.Show("Đã cập nhật dữ liệu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            } 
        }        
    }
}
